home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
FileDialog.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-06-09
|
2KB
|
115 lines
#ifndef FileDialog_First
#ifdef __GNUG__
//pragma once
#pragma interface
#endif
#define FileDialog_First
#include "Dialog.h"
class TextField;
class TextItem;
class CollectionView;
class OrdCollection;
class Menu;
class PopupButton;
class ImageItem;
class TextItem;
class ActionButton;
class Scroller;
class Data;
//---- FileDialog --------------------------------------------------------------
const int cMaxPathName= 400;
typedef bool (EvtHandler::*FilterFunc)(Data *d);
//---- id's
const int cIdName = cIdFirstUser + 110,
cIdList = cIdFirstUser + 111,
cIdUpdate = cIdFirstUser + 112,
cIdPath = cIdFirstUser + 113,
cIdComponent = cIdFirstUser + 120;
const int cPathBuf = 200,
cItemMinWidth = 250,
cNumItems = 7;
enum FileDialogFlags {
eFDRead,
eFDWrite,
eFDImport
};
class FileDialog : public Dialog {
public:
MetaDef(FileDialog);
FileDialog(char *title= "File Dialog");
~FileDialog();
int ShowInWindow(FileDialogFlags, Clipper*, EvtHandler *eh= 0, char *msg= 0);
char *FileName();
Data *GetFileData()
{ return fileData; }
Data *GetData()
{ return fileData; }
virtual bool WrongType();
virtual bool ChangeDirectory();
protected:
void InputKbd(Token &t);
VObject *DoMakeContent();
void DoSetup();
void DoRestore();
void DoSetDefaults();
void Control(int id, int, void *v);
int ItemHeight();
virtual void UpdateList();
virtual void UpdatePath();
virtual bool OpenOrChangeDir();
virtual VObject *MakeFileItem(Data *d);
protected:
TextField *eti;
TextItem *title;
char *initDir;
FileDialogFlags flags;
CollectionView *collview;
OrdCollection *pathList;
EvtHandler *doc;
Data *fileData;
ActionButton *openButton;
PopupButton *pathPopup;
FilterFunc filterfunc;
Scroller *scroller;
Data *current;
};
//---- FileItem --------------------------------------------------------------
class FileItem: public VObject {
protected:
Data *data;
public:
MetaDef(FileItem);
FileItem(char *name, bool shallow= TRUE);
FileItem(Data *d);
~FileItem();
Data *GetData()
{ return data; }
char *AsString();
int Compare(Object *op);
void Draw(Rectangle r);
Metric GetMinSize();
};
extern const Point cIconSize;
#endif